Robust spacecraft controller and method for designing same

ABSTRACT

A method, apparatus, article of manufacture, and a memory structure for designing a robust controller. The method comprises the steps of determining a plant model G of the system dynamics; bounding system dynamics unmodeled by the plant model G of the system dynamics by a weighting function W; applying a transform to an augmented plant model T having the plant model G and the weighting function W; defining a controller {tilde over (F)} from the transformed plant model T; and applying an inverse of the transform to the controller {tilde over (F)} defined from the transformed plant model and the weighting function W to generate the robust controller F.

BACKGROUND OF THE INVENTION

[0001] 1. Field of the Invention

[0002] The present invention relates to systems and methods for designing and operating feedback control systems, and in particular to a system and method for robustly controlling spacecraft.

[0003] 2. Description of the Related Art

[0004] Controllers are often employed to stabilize or improve the stability of an inherently unstable or marginally stable dynamic system. Such controllers are typically designed using well known state-space or Laplace transform techniques.

[0005] However, most dynamic systems include one or more non-linearities (e.g. actuator saturation, sensor dynamic range, plant operation envelope) that make the derivation of closed form controller solutions difficult or impossible.

[0006] In most cases, the system non-linearities do not substantially affect controller design or system performance in measures of interest, and can simply be ignored. However, in many cases, system non-linearities have a substantial effect on system performance. In such cases, the system non-linearities must be accounted for in the controller design.

[0007] One solution to this problem is to generate a linearized model of the system (including the system non-linearities), and design the controller using linear control system design techniques. However, while appropriate for some non-linearities, this technique is not generally applicable to all non-linearities.

[0008] Another solution is to generate a detailed simulation (e.g. an N degree of freedom, or N DOF simulation) of the system, including the non-linear elements, and use that simulation to design a controller to meet system requirements. This solution, however, can be time and resource intensive, both in generating the simulation and in performing multiple monte-carlo simulations to account for stochastically-modeled processes. Detailed simulations can also be very sensitive to modeling errors and uncertainties. Further, even when a detailed N DOF simulation is available, it can be difficult to design a controller without a starting point that is reasonably close to a stable solution that meets system requirements.

[0009] These difficulties are particularly apparent when considering the design of a controller for the attitude control system (ACS) of a spinning spacecraft during a transfer orbit mission. During the transfer orbit mission, the spacecraft can be difficult to control due to a strong interaction between the dynamics of fuel sloshing around in the fuel vessels (fuel slosh) and the dynamics of the spinning spacecraft. Fuel slosh dynamics are not only difficult and complicated to model, they are also highly uncertain.

[0010] Existing spacecraft ACS transfer orbit controller designs include Wheel Gyro Wobble and Nutation Control (WGWANC) systems. Unfortunately, this design is not robust to fuel slosh dynamics and system uncertainties. This is due to the nature of the WGWANC design methodology, which attempts to decouple 3-axis dynamics by absorbing the inverse of the plant inertial into the controller. This seriously degrades ACS controller robustness when the actual plant dynamics differ from model predictions.

[0011] WGWANC design procedures are also typically based on a classical 2^(nd) order approximation of the plant dynamics. The controllers that result require substantial tuning (in the form of gain-scheduling, for example) throughout the mission to assure stability and adequate performance. Such gain scheduling can result in complicated software and mission operation procedures.

[0012] What is needed is a simple, effective method for designing system controllers that are robust to system uncertainties and non-linearities, for example, an ACS controller for spinning spacecraft that is robust to fuel sloshing effects.

[0013] The present invention satisfies that need.

SUMMARY OF THE INVENTION

[0014] To address the requirements described above, the present invention discloses a method, apparatus, and article of manufacture for designing a robust controller. The method comprises the steps of determining a plant model G of the system dynamics; bounding system dynamics unmodeled by the plant model G of the system dynamics by a weighting function W; applying a transform to an augmented plant model T having the plant model G and the weighting function W; defining a controller {tilde over (F)} from the transformed plant model T; and applying an inverse of the transform to the controller {tilde over (F)} defined from the transformed plant model and the weighting function W to generate the robust controller F. The apparatus comprises means, such as a digital computer having a processor and a memory, for performing the foregoing operations. The article of manufacture comprises a program storage device tangibly embodying instructions for performing the foregoing method steps.

BRIEF DESCRIPTION OF THE DRAWINGS

[0015] Referring now to the drawings in which like reference numbers represent corresponding parts throughout:

[0016]FIG. 1 is an illustration of a spacecraft;

[0017]FIG. 2 is a diagram depicting the functional architecture of a representative spacecraft attitude and control system;

[0018]FIG. 3 is a block diagram presenting a representation of a control system model;

[0019]FIG. 4 is a flow chart presenting illustrative steps that can be used to design a robust controller for a dynamic system;

[0020]FIG. 5 is a diagram of a linearized model of a spinning body;

[0021]FIG. 6 is a diagram showing an example of how unmodeled system dynamics can be bounded by a weighting function W;

[0022]FIG. 7 is a diagram an augmented plant model;

[0023]FIG. 8 is a diagram showing the operation of a bilinear pole-shifting transform; and

[0024]FIG. 9 is a diagram of a modified representation of the system model.

DETAILED DESCRIPTION OF PREFERRED EMBODIMENTS

[0025] In the following description, reference is made to the accompanying drawings which form a part hereof, and which is shown, by way of illustration, several embodiments of the present invention. It is understood that other embodiments may be utilized and structural changes may be made without departing from the scope of the present invention.

[0026] In the following description, reference is made to the accompanying drawings which form a part hereof, and which is shown, by way of illustration, several embodiments of the present invention. It is understood that other embodiments may be utilized and structural changes may be made without departing from the scope of the present invention.

[0027]FIG. 1 illustrates a three-axis stabilized satellite or spacecraft 100. The satellite 100 has a main body or spacecraft bus 102, a pair of solar panels 104, a pair of high gain narrow beam antennas 106, and a telemetry and command omni-directional antenna 108 which is aimed at a control ground station. The satellite 100 may also include one or more sensors 110 to measure the attitude of the satellite 100. These sensors may include sun sensors, earth sensors, and star sensors. Since the solar panels are often referred to by the designations “North” and “South”, the solar panels in FIG. 1 are referred to by the numerals 104N and 104S for the “North” and “South” solar panels, respectively.

[0028] The three axes of the spacecraft 100 are shown in FIG. 1. The pitch axis P lies along the plane of the solar panels 140N and 140S. The roll axis R and yaw axis Y are perpendicular to the pitch axis P and lie in the directions and planes shown. The antenna 108 points to the Earth along the yaw axis Y.

[0029]FIG. 2 is a diagram depicting the functional architecture of a representative attitude control system (ACS). The spacecraft 100 includes a processor subsystem 274, which may include a spacecraft control processor (SCP) 202 and a communication processor (CP) 276.

[0030] The SCP 202 implements control of the spacecraft 100. The SCP 202 performs a number of functions which may include post ejection sequencing, transfer orbit processing, acquisition control, stationkeeping control, normal mode control, mechanisms control, fault protection, and spacecraft systems support, among others. The post ejection sequencing could include initializing to assent mode and thruster active nutation control (TANC). The transfer orbit processing could include attitude data processing, thruster pulse firing, perigee assist maneuvers, and liquid apogee motor (LAM) thruster firing. During LAM thruster firing, the satellite is typically spin-stabilized, rather than 3-axis stabilized.

[0031] The acquisition control could include idle mode sequencing, sun search/acquisition, and Earth search/acquisition. The stationkeeping control could include auto mode sequencing, gyro calibration, stationkeeping attitude control and transition to normal. The normal mode control could include attitude estimation, attitude and solar array steering, momentum bias control, magnetic torquing, and thruster momentum dumping (H-dumping). The mechanisms mode control could include solar panel control and reflector positioning control. The spacecraft control systems support could include tracking and command processing, battery charge management and pressure transducer processing.

[0032] Input to the spacecraft control processor 202 may come from a any combination of a number of spacecraft components and subsystems, such as a transfer orbit sun sensor 204, an acquisition sun sensor 206, an inertial reference unit 208, a transfer orbit Earth sensor 210, an operational orbit Earth sensor 212, a normal mode wide angle sun sensor 214, a magnetometer 216, and one or more star sensors 218.

[0033] The SCP 202 generates control signal commands 220 which are directed to a command decoder unit 222. The command decoder unit operates the load shedding and battery charging systems 224. The command decoder unit also sends signals to the magnetic torque control unit (MTCU) 226 and the torque coil 228.

[0034] The SCP 202 also sends control commands 230 to the thruster valve driver unit 232 which in turn controls the liquid apogee motor (LAM) thrusters 234 and the attitude control thrusters 236.

[0035] Wheel torque commands 262 are generated by the SCP 202 and are communicated to the wheel speed electronics 238 and 240. These effect changes in the wheel speeds for wheels in momentum wheel assemblies 242 and 244, respectively. The speed of the wheels is also measured and fed back to the SCP 202 by feedback control signal 264.

[0036] The spacecraft control processor also sends jackscrew drive signals 266 to the momentum wheel assemblies 243 and 244. These signals control the operation of the jackscrews individually and thus the amount of tilt of the momentum wheels. The position of the jackscrews is then fed back through command signal 268 to the spacecraft control processor. The signals 268 are also sent to the telemetry encoder unit 258 and in turn to the ground station 260.

[0037] The spacecraft control processor also sends command signals 254 to the telemetry encoder unit 258 which in turn sends feedback signals 256 to the SCP 202. This feedback loop, as with the other feedback loops to the SCP 202 described earlier, assist in the overall control of the spacecraft. The SCP 202 communicates with the telemetry encoder unit 258, which receives the signals from various spacecraft components and subsystems indicating current operating conditions, and then relays them to the ground station 260.

[0038] The wheel drive electronics 238, 240 receive signals from the SCP 202 and control the rotational speed of the momentum wheels. The jackscrew drive signals 266 adjust the orientation of the angular momentum vector of the momentum wheels. This accommodates varying degrees of attitude steering agility and accommodates movement of the spacecraft as required.

[0039] The CP 276 and SCP 202 may include or have access to one or more memories 270, including, for example, a random access memory (RAM). Generally, the CP and SCP 202 operates under control of an operating system 272 stored in the memory 270, and interfaces with the other system components to accept inputs and generate outputs, including commands. Applications running in the CP 276 and SCP 202 access and manipulate data stored in the memory 270. The spacecraft 100 may also comprise an external communication device such as a satellite link for communicating with other computers at, for example, a ground station. If necessary, operation instructions for new applications can be uploaded from ground stations. The CP 276 and SCP 202 can also be implemented in a single processor, or with different processors having separate memories.

[0040] In one embodiment, instructions implementing the operating system 272, application programs, and other modules are tangibly embodied in a computer-readable medium, e.g., data storage device, which could include a RAM, EEPROM, or other memory device. Further, the operating system 272 and the computer program are comprised of instructions which, when read and executed by the SCP 202, causes the spacecraft processor 202 to perform the steps necessary to implement and/or use the present invention. Computer program and/or operating instructions may also be tangibly embodied in memory 270 and/or data communications devices (e.g. other devices in the spacecraft 10 or on the ground), thereby making a computer program product or article of manufacture according to the invention. As such, the terms “program storage device,” “article of manufacture” and “computer program product” as used herein are intended to encompass a computer program accessible from any computer readable device or media.

[0041]FIG. 3 is a block diagram presenting representation of a control system model 300. The model 300 includes a representation of a command input 310, which is compared to the output 314 to generate an error 312.

[0042] The control system model 300 includes a plant model G 302. In the illustrative example presented herein, the control system model 300 is a satellite control system and plant model G 302 is a representation of satellite rigid body dynamics. The plant model G 302 typically includes only linear or linearized representations of the plant. The satellite control system model 300 also includes a controller F 304. The controller F 302 is designed to modify the error signal 314 as required to achieve the desired overall system response before providing the signal the rigid body dynamics G 302.

[0043] The system model 300 also includes an model for dynamics that are unmodeled by the plant model G 302. In one embodiment, these unmodeled dynamics include fuel slosh dynamics Δ_(A) 308, which will be described further herein. The system model 300 also includes a bounding or weighting function W 306, which bounds the unmodeled dynamics 308 as described further below.

[0044]FIG. 4 is a flow chart presenting illustrative steps that can be used to design a robust controller for a dynamic system such as that which is presented in system model 300. In block 402, a plant model G 302 of the system dynamics is determined. Typically, the plant model G 302 is a linearized plant model, such as the model of the linearized rigid body dynamics as shown below.

[0045] Linearized Rigid Body Dynamics

[0046]FIG. 5 is a diagram of a linearized model of a spinning body such as the satellite 100, when undergoing orbital transfer maneuvers. This example is used in the following discussion to provide an example of how the present invention can be used to design a robust control system.

[0047] In the illustrated example, the satellite 100 body is a rigid body with a mass, spinning about an axis such as the z-axis as shown. The linearized dynamic model G 302 about a nominal spacecraft spin rate Ω₀ and constant wheel 508 momentum h₀ 504 along unit vector axis e_(w) 506 in the satellite 100 body frame (typically [0−1 0]^(T)) can be represented as $\begin{bmatrix} {\Delta \quad \overset{.}{\omega}} \\ {\Delta \quad \overset{.}{h}} \end{bmatrix} = {{T\begin{bmatrix} {\Delta \quad \omega} \\ {\Delta \quad h} \end{bmatrix}} + {\begin{bmatrix} {{- I^{- 1}}e_{w}} \\ 1 \end{bmatrix}\quad \tau}}$

[0048] wherein $\begin{matrix} {{T = \begin{bmatrix} {- {I^{- 1}\left\lbrack {{\omega_{0}^{x}I} - \left( {{I\quad \omega_{0}} + h_{0}} \right)^{x}} \right\rbrack}} & {{- I^{- 1}}\omega_{0}^{x}e_{\omega}} \\ 0 & 0 \end{bmatrix}};} \\ {\omega = \begin{bmatrix} \begin{matrix} \omega_{x} \\ \omega_{y} \end{matrix} \\ \omega_{z} \end{bmatrix}} \end{matrix}$

[0049] is a vector describing a rotational rate of the spacecraft about axes x, y, and z respectively; $h = \begin{bmatrix} \begin{matrix} h_{x} \\ h_{y} \end{matrix} \\ h_{z} \end{bmatrix}$

[0050] is a vector describing the rotational momentum of the spacecraft about axes x, y, and z respectively; $I = \begin{bmatrix} I_{11} & I_{12} & I_{13} \\ I_{21} & I_{22} & I_{23} \\ I_{31} & I_{32} & I_{33} \end{bmatrix}$

[0051] is a matrix describing the moment of inertia of the spacecraft and (diagonal components, I₁₁ I₂₂ I₃₃, of the I matrix are the principal inertia components; the off-diagonal components are the cross product of inertia of the rigid body); ${\omega_{0} = \begin{bmatrix} \begin{matrix} 0 \\ 0 \end{matrix} \\ \omega_{s} \end{bmatrix}},$

[0052] wherein ω_(s) is the spin rate of the spacecraft about the z axis; ${h_{0} = \begin{bmatrix} {{- I_{13}}\omega_{s}} \\ {{- I_{23}}\omega_{s}} \\ 0 \end{bmatrix}};$

[0053] τ is a torque applied to the spacecraft 100 by the wheel; and

[0054] wherein the operator x is defined such that follows:

[0055] The cross-product of vectors {right arrow over (a)} and {right arrow over (b)} (i.e. {right arrow over (a)}×{right arrow over (b)}) is $\begin{matrix} \begin{matrix} {\begin{bmatrix} \overset{\rightarrow}{i} & \overset{\rightarrow}{j} & \overset{\rightarrow}{k} \\ a_{1} & a_{2} & a_{3} \\ b_{1} & b_{2} & b_{3} \end{bmatrix} = \begin{bmatrix} \begin{matrix} {{a_{2\quad}b_{3}} - {a_{3\quad}b_{2}}} \\ {{a_{3\quad}b_{1}} - {a_{1\quad}b_{3}}} \end{matrix} \\ {{a_{1\quad}b_{2}} - {a_{2\quad}b_{1}}} \end{bmatrix}} \\ {{= {{\begin{bmatrix} 0 & {- a_{3}} & a_{2} \\ a_{3} & 0 & {- a_{1}} \\ {- a_{2}} & a_{1} & 0 \end{bmatrix}\begin{bmatrix} \begin{matrix} b_{1} \\ b_{2} \end{matrix} \\ b_{3} \end{bmatrix}}a^{x}{b.\quad {Therefore}}}},} \end{matrix} \\ {{{a^{x} = \begin{bmatrix} 0 & {- a_{3}} & a_{2} \\ a_{3} & 0 & {- a_{1}} \\ {- a_{2}} & a_{1} & 0 \end{bmatrix}},{{{and}\quad \omega^{x}} = {\begin{bmatrix} 0 & {- \omega_{3}} & \omega_{2} \\ \omega_{3} & 0 & {- \omega_{1}} \\ {- \omega_{2}} & \omega_{1} & 0 \end{bmatrix}.}}}\quad} \end{matrix}$

[0056] Since they are not stabilizable, states ω_(z) and H_(z) are eliminated from the above dynamics, resulting in a 4-state, two-input, two-output plant dynamic description with only ω_(x) and ω_(y) fed back.

[0057] To design a robust control system, anticipated plant variations and other uncertainties must be bounded. Such anticipated plant variations include rigid body plant mass property variations (as fuel is expended, for example), and fuel slosh.

[0058] Returning to FIG. 4, in block 404, the system dynamics that are unmodeled by the plant model G₀ 302 are bounded by a weighting function W.

[0059]FIG. 6 is a diagram showing an example of how unmodeled system dynamics can be bounded by a weighting function W. In this specific example, a Bode plot 602 of the unmodeled fuel slosh dynamics for varying parameters A_(k) and LK₀, where A_(k) is the modal inertia coupling coefficient and LK₀ is the modal frequency parameter. Both parameters define a particular two-dimensional Finite Element Model (FEM) of the fuel sloshing dynamics. Weighting function 604 is defined to bound the unmodeled system dynamics 602. Note that the higher the bandwidth of the weighting function W (FIG. 6 illustrates W¹), the more fuel slosh uncertainty in the system can be tolerated.

[0060] Returning to FIG. 4, an augmented plant model T is determined from the weighting function W and the system model G, as shown in block 406.

[0061]FIG. 7 is a diagram showing an augmented plant model 700. In this configuration, the plant model T 702 defined the response of the output y1 to an input u1, and includes system model G 302, the bounding function W 306, and the controller {tilde over (F)} (704).

[0062] Returning again to FIG. 4, a transform is applied to the augmented plant model T 700, as shown in block 408. In one embodiment, the transform is a bilinear transform such as the transform $s = \frac{\overset{\sim}{s} + p_{1}}{1 + \frac{\overset{\sim}{s}}{p_{2}}}$

[0063] wherein s is a Laplace operator s=jω, p₁ is a first pole, p₂ is a second pole, and {tilde over (s)} is the Laplace operator s in the transformed (H^(∞)) domain. The first pole p₁ at least partially characterizes the bandwidth of the closed loop system 300 that results from the application of the design methodology of the present invention, while the second pole p₂ at least partially characterizes the damping of the closed loop system 300. Accordingly, the poles p₁ and p₂ are selected to result in the desired bandwidth and damping of the closed loop system.

[0064]FIG. 8 is a diagram showing the operation of the bilinear pole-shifting transform from a first plane (s-plane) 800 to a second ({tilde over (s)}-plane) 850. The first plane 800 is defined by a real and imaginary axis, upon which the poles and zeros of the closed loop system model are plotted. Poles 806 (denoted by Xs in FIG. 8) and zeros 804 (denoted by “0”s) appear on the imaginary axis. Poles 806 appearing in the right half plane (RHP) 802 indicate an unstable closed loop system, whereas poles appearing in the left half plane indicate a stable closed loop system.

[0065] When the bilinear transform is applied to the augmented plant model T 702, the right half plane 802 gets mapped into a region 852. In the illustrated example, wherein the bilinear transform is defined in terms of poles p₁ and p₂, the region 852 is a circle that intersects the real axis at −p₁ and −p₂, as shown. With this transform, poles 806A-806C are mapped to locations 854A-854C on the periphery of the circle 852.

[0066] Returning to FIG. 4, a controller F({tilde over (s)}) 704 (hereinafter alternatively designated as {tilde over (F)}) can be designed from the transformed augmented plant model 700. In doing so, the uncertainty model is folded into the controller {tilde over (F)} 704 design.

[0067]FIG. 9 is a modified representation of the system model 300. Here, he system model 300 can also be represented by its closed loop equivalent

M=W*{tilde over (F)}*(I+G{tilde over (F)})⁻¹

[0068] By the small gain theorem, if |Δ_(A)|*|M|<1, the closed loop is stable. In the foregoing case, W 306 bounds the unmodeled fuel slosh dynamics by an additive uncertainty. W 306 is also a weighting function in the H^(∞) domain on the plant G 302 to be optimized. Hence, controller {tilde over (F)} 704 in the H^(∞) domain can be found that bounds the pre-specified and unmodeled fuel slosh dynamics 308.

[0069] This can be accomplished by minimizing the measure of maximum singular value ({overscore (σ)}) of the augmented plant transfer function [W{tilde over (F)}(I+G{tilde over (F)})⁻¹] to be less than one (Small Gain Stability Theorem). If the transformed augmented plant model T700 can be expressed in the following state space realization: $T_{\frac{y1}{u1}} = \begin{bmatrix} A & B_{1} & B_{2} \\ C_{1} & D_{11} & D_{12} \\ C_{2} & D_{21} & D_{22} \end{bmatrix}$

[0070] the controller {tilde over (F)} can be parameterized into two game theoretic Riccati equations: $\overset{\sim}{F} = \begin{bmatrix} {A + {B_{1}B_{1}^{T}P} + {B_{2}R} + {Z\quad L\quad C_{2}}} & {{- Z}\quad L} \\ R & 0 \end{bmatrix}$

[0071] where R=−B₂ ^(T)P, L=−QC₂ ^(T), and Z=(I=PQ)⁻¹, and wherein $\begin{matrix} {P = {R\quad i\quad {c\begin{bmatrix} A & {{B_{1}B_{1}^{T}} - {B_{2}B_{2}^{T}}} \\ {- C_{1}^{T}} & {- A^{T}} \end{bmatrix}}\quad {and}}} \\ {{Q = {R\quad i\quad {c\begin{bmatrix} A^{T} & {{C_{1}^{T}C_{1}} - {C_{2}^{T}C_{2}}} \\ {{- B_{1}}B_{1}^{T}} & {- A} \end{bmatrix}}}}\quad} \end{matrix}$

[0072] The result of the foregoing is a controller, {tilde over (F)} 704 which propagates the closed loop poles from the edge of region 852 to the right half plane (RHP) 858 of the {tilde over (s)}-plane to locations 856A-856C.

[0073] Returning to FIG. 4, an inverse of the applied transform is then applied to the controller {tilde over (F)} defined above to produce controller F 304. This is shown in block 412. Continuing the exemplary embodiment discussed above, the inverse transform is defined as $\overset{\sim}{s} = \frac{{- s} + p_{1}}{\frac{s}{p_{2} - 1}}$

[0074] Referring again to FIG. 8, application of the inverse transform maps the left half plane 858 of the {tilde over (s)}-plane 850 to the region 810 of the s-plane 800. Accordingly, the inverse transform moves the poles 856A-856C from their locations in the LHP 858 of the {tilde over (s)}-plane 850 to locations 808A-808C within the region 810 of the s-plane 800. Since the mapping compresses the LHP 858 into a smaller region 810 closer to the real axis and further away from the imaginary axis of the s-plane, the stability of the resulting system is enhanced.

[0075] Therefore, with respect to the example of the stabilization of the spinning spacecraft 100, it can be seen that the application of the bilinear transform maps the nutation poles onto the circle with end points −p₁ and −p₂ in the RHP 802. The plant dynamics have become more “unstable” in the new domain. However, as shown above, the direct Ricatti solution maps the open-loop unstable poles in FIG. 8 to their mirror image in plane 800 on a circle 810 with endpoints p₁ and p₂ as their final closed loop poles. The controller {tilde over (F)} maps the {tilde over (s)} plane 850 closed loop poles further to the left when transformed back to the s plane 800.

[0076] This design synthesis technique not only stabilizes the spinning dynamics, but also de-couples the roll/pitch axis automatically while minimizing the sensitivity function of the system. Fuel slosh dynamics, which have highly uncertain behavior, are treated as unmodeled dynamics, and a weighting function W (which is folded into the design process) is imposed on the overall cost function, thus bounding the fuel slosh dynamic uncertainty. The resulting controller F is therefore stable against all fuel slosh uncertainty bounded by the weighting function W

[0077] Conclusion

[0078] This concludes the description of the preferred embodiments of the present invention. The foregoing description of the preferred embodiment of the invention has been presented for the purposes of illustration and description. It is not intended to be exhaustive or to limit the invention to the precise form disclosed. Many modifications and variations are possible in light of the above teaching. It is intended that the scope of the invention be limited not by this detailed description, but rather by the claims appended hereto. The above specification, examples and data provide a complete description of the manufacture and use of the composition of the invention. Since many embodiments of the invention can be made without departing from the spirit and scope of the invention, the invention resides in the claims hereinafter appended. 

What is claimed is:
 1. A method of designing a robust controller for a dynamic system, comprising the steps of: determining a plant model G of the system dynamics; bounding system dynamics unmodeled by the plant model G of the system dynamics by a weighting function W; applying a transform to an augmented plant model T having the plant model G and the weighting function W; defining a controller {tilde over (F)} from the transformed plant model T; and applying an inverse of the transform to the controller {tilde over (F)} defined from the transformed plant model and the weighting function W to generate the robust controller F.
 2. The method of claim 1, wherein the plant model G is a linearized plant model, and the system dynamics unmodeled by the plant model G are non-linear system dynamics.
 3. The method of claim 1, wherein the transform comprises a bilinear transform.
 4. The method of claim 3, wherein the bilinear transform comprises a pole-shifting transform transforming the plant model T from a first frequency domain s to a second frequency domain {tilde over (s)}.
 5. The method of claim 4, wherein the bilinear transform comprises ${s = \frac{\overset{\sim}{s} + p_{1}}{1 + \frac{\overset{\sim}{s}}{p_{2}}}},$

and the inverse of the bilinear transform is ${\overset{\sim}{s} = \frac{{- s} + p_{1}}{\frac{s}{p_{2} - 1}}},$

wherein p₁ is a first pole at least partially characterizing a bandwidth of a closed loop system having the controller and the dynamic system, and p₂ is a second pole at least partially characterizing a damping of the closed loop system.
 6. The method of claim 5, wherein the controller {tilde over (F)} is determined by minimizing the measure of maximum singular value ({overscore (σ)}) of the augmented plant transfer function [W{tilde over (F)}(I+G{tilde over (F)})⁻¹] to be less than one.
 7. The method of claim 5, wherein the controller is characterizable by $\overset{\sim}{F} = \begin{bmatrix} {A + {B_{1}B_{1}^{T}P} + {B_{2}R} + {Z\quad L\quad C_{2}}} & {{- Z}\quad L} \\ R & 0 \end{bmatrix}$

wherein R=−B₂ ^(T)P, L=−QC₂ ^(T), and Z=(I=PQ)⁻¹, and wherein A, B₁, B₂, C₁, C₂, D₁₁, D₁₂, D₂₁, and D₂₂ are parameters in a plant model ${T = \begin{bmatrix} A & B_{1} & B_{2} \\ C_{1} & D_{11} & D_{12} \\ C_{2} & D_{21} & D_{22} \end{bmatrix}},$

and wherein ${P = {{Ric}\quad\begin{bmatrix} A & {{B_{1}B_{1}^{T}} - {B_{2}B_{2}^{T}}} \\ {- C_{1}^{T}} & {- A^{T}} \end{bmatrix}}}\quad$

and ${Q = {R\quad i\quad {c\begin{bmatrix} A^{T} & {{C_{1}^{T}C_{1}} - {C_{2}^{T}C_{2}}} \\ {{- B_{1}}B_{1}^{T}} & {- A} \end{bmatrix}}}}\quad$

are solutions of a Game-Theretic Riccati equation.
 8. The method of claim 1, wherein the plant model G is a linearized dynamic model.
 9. The method of claim 1, wherein: the dynamic system is a spacecraft having a momentum wheel having a momentum h₀, and the dynamic model G is defined according to the relation ${\begin{bmatrix} {\Delta \quad \overset{.}{\omega}} \\ {\Delta \quad \overset{.}{h}} \end{bmatrix} = {{T\begin{bmatrix} {\Delta \quad \omega} \\ {\Delta \quad h} \end{bmatrix}} + {\begin{bmatrix} {{- I^{- 1}}e_{w}} \\ 1 \end{bmatrix}\quad \tau}}};$

wherein ${T = \begin{bmatrix} {- {I^{- 1}\left\lbrack {{\omega_{0}^{x}I} - \left( {{I\quad \omega_{0}} + h_{0}} \right)^{x}} \right\rbrack}} & {{- I^{- 1}}\omega_{0}^{x}e_{\omega}} \\ 0 & 0 \end{bmatrix}};$

wherein $\omega = \begin{bmatrix} \begin{matrix} \omega_{x} \\ \omega_{y} \end{matrix} \\ \omega_{z} \end{bmatrix}$

is a vector describing a rotational rate of the spacecraft about an x, y, and z axis, respectively and $h = \begin{bmatrix} \begin{matrix} h_{x} \\ h_{y} \end{matrix} \\ h_{z} \end{bmatrix}$

is a vector describing the rotational momentum of the spacecraft about the x, y, and z axis, respectively; $I = \begin{bmatrix} I_{11} & I_{12} & I_{13} \\ I_{21} & I_{22} & I_{23} \\ I_{31} & I_{32} & I_{33} \end{bmatrix}$

is a matrix describing the moment of inertia of the spacecraft, the matrix having diagonal components, I₁₁ I₂₂ I₃₃ which are principal inertia components, and off-diagonal components I₂₁ I₃₂ I₃₁ and I₁₂ I₂₃ I₁₃ are the cross product of inertia components; ${\omega_{0} = \begin{bmatrix} \begin{matrix} 0 \\ 0 \end{matrix} \\ \omega_{s} \end{bmatrix}},$

wherein ω_(s) is the spin rate of the spacecraft about the z axis, and ${h_{0} = \begin{bmatrix} {{- I_{13}}\omega_{s}} \\ {{- I_{23}}\omega_{s}} \\ 0 \end{bmatrix}};$

e_(w) is a unit vector axis of a momentum wheel, and τ is a torque applied to the spacecraft by the momentum wheel; and and wherein the operator x is defined such that {right arrow over (a)}×{right arrow over (b)}=a^(x)b .
 10. An apparatus for designing a robust controller for a dynamic system, comprising: means for determining a plant model G of the system dynamics; means for bounding system dynamics unmodeled by the plant model G of the system dynamics by a weighting function W; means for applying a transform to an augmented plant model T having the plant model G and the weighting function W; means for defining a controller {tilde over (F)} from the transformed plant model T; and means for applying an inverse of the transform to the controller {tilde over (F)} defined from the transformed plant model and the weighting function W to generate the robust controller F.
 11. The apparatus of claim 10, wherein the plant model G is a linearized plant model, and the system dynamics unmodeled by the plant model G are non-linear system dynamics.
 12. The apparatus of claim 10, wherein the transform comprises a bilinear transform.
 13. The apparatus of claim 12, wherein the bilinear transform comprises a pole-shifting transform transforming the plant model T from a first frequency domain s to a second frequency domain {tilde over (s)}.
 14. The apparatus of claim 13, wherein the bilinear transform comprises ${s = \frac{\overset{\sim}{s} + p_{1}}{1 + \frac{\overset{\sim}{s}}{p_{2}}}},$

and the inverse of the bilinear transform is ${\overset{\sim}{s} = \frac{{- s} + p_{1}}{\frac{s}{p_{2} - 1}}},$

wherein p₁ is a first pole at least partially characterizing a bandwidth of a closed loop system having the controller and the dynamic system, and p₂ is a second pole at least partially characterizing a damping of the closed loop system.
 15. The apparatus of claim 14, wherein the controller is determined by minimizing the measure of maximum singular value ({overscore (σ)}) of the augmented plant transfer function [W{tilde over (F)}(I+G{tilde over (F)})⁻¹] to be less than one
 16. The apparatus of claim 14, wherein the controller is characterizable by $\overset{\sim}{F} = \begin{bmatrix} {A + {B_{1}B_{1}^{T}P} + {B_{2}R} + {Z\quad L\quad C_{2}}} & {{- Z}\quad L} \\ R & 0 \end{bmatrix}$

wherein R=−B₂ ^(T)P, L=−QC₂ ^(T), and Z=(I=PQ)⁻¹, and wherein A, B₁, B₂, C₁, C₂, D₁₁, D₁₂, D₂₁, and D₂₂ are parameters in a plant model ${T = \begin{bmatrix} A & B_{1} & B_{2} \\ C_{1} & D_{11} & D_{12} \\ C_{2} & D_{21} & D_{22} \end{bmatrix}},$

and wherein ${P = {R\quad i\quad {c\begin{bmatrix} A & {{B_{1}B_{1}^{T}} - {B_{2}B_{2}^{T}}} \\ {- C_{1}^{T}} & {- A^{T}} \end{bmatrix}}}}\quad$

and ${Q = {R\quad i\quad {c\begin{bmatrix} A^{T} & {{C_{1}^{T}C_{1}} - {C_{2}^{T}C_{2}}} \\ {{- B_{1}}B_{1}^{T}} & {- A} \end{bmatrix}}}}\quad$

are solutions of a Game-Theretic Riccati equation.
 17. The apparatus of claim 10, wherein the plant model G is a linearized dynamic model.
 18. The apparatus of claim 10, wherein: the dynamic system is a spacecraft having a momentum wheel having a momentum h₀, and the dynamic model G is defined according to the relation ${\begin{bmatrix} {\Delta \quad \overset{.}{\omega}} \\ {\Delta \quad \overset{.}{h}} \end{bmatrix} = {{T\begin{bmatrix} {\Delta \quad \omega} \\ {\Delta \quad h} \end{bmatrix}} + {\begin{bmatrix} {{- I^{- 1}}e_{w}} \\ 1 \end{bmatrix}\quad \tau}}};$

wherein ${T = \begin{bmatrix} {- {I^{- 1}\left\lbrack {{\omega_{0}^{x}I} - \left( {{I\quad \omega_{0}} + h_{0}} \right)^{x}} \right\rbrack}} & {{- I^{- 1}}\omega_{0}^{x}e_{\omega}} \\ 0 & 0 \end{bmatrix}};$

wherein $\omega = \begin{bmatrix} \begin{matrix} \omega_{x} \\ \omega_{y} \end{matrix} \\ \omega_{z} \end{bmatrix}$

is a vector describing a rotational rate of the spacecraft about an x, y, and z axis, respectively and $h = \begin{bmatrix} \begin{matrix} h_{x} \\ h_{y} \end{matrix} \\ h_{z} \end{bmatrix}$

is a vector describing the rotational momentum of the spacecraft about the x, y, and z axis, respectively; $I = \begin{bmatrix} I_{11} & I_{12} & I_{13} \\ I_{21} & I_{22} & I_{23} \\ I_{31} & I_{32} & I_{33} \end{bmatrix}$

is a matrix describing the moment of inertia of the spacecraft, the matrix having diagonal components, I₁₁ I₂₂ I₃₃ which are principal inertia components, and off-diagonal components I₂₁ I₃₂ I₃₁ and I₁₂ I₂₃ I₁₃ are the cross product of inertia components; ${\omega_{0} = \begin{bmatrix} \begin{matrix} 0 \\ 0 \end{matrix} \\ \omega_{s} \end{bmatrix}},$

wherein ω_(s) is the spin rate of the spacecraft about the z axis, and ${h_{0} = \begin{bmatrix} {{- I_{13}}\omega_{s}} \\ {{- I_{23}}\omega_{s}} \\ 0 \end{bmatrix}};$

e_(w) is a unit vector axis of a momentum wheel, and τ is a torque applied to the spacecraft by the momentum wheel; and and wherein the operator x is defined such that {right arrow over (a)}×{right arrow over (b)}=a^(x)b.
 19. A program storage device, readable by a computer, tangibly embodying at least one program of instructions executable by the computer to perform method steps of designing a robust controller for a dynamic system, the method steps comprising the steps of: determining a plant model G of the system dynamics; bounding system dynamics unmodeled by the plant model G of the system dynamics by a weighting function W; applying a transform to an augmented plant model T having the plant model G and the weighting function W; defining a controller {tilde over (F)} from the transformed plant model T; and applying an inverse of the transform to the controller {tilde over (F)} defined from the transformed plant model and the weighting function W to generate the robust controller F.
 20. The program storage device of claim 19, wherein the plant model G is a linearized plant model, and the system dynamics unmodeled by the plant model G are non-linear system dynamics.
 21. The program storage device of claim 19, wherein the transform comprises a bilinear transform.
 22. The program storage device of claim 21, wherein the bilinear transform comprises a pole-shifting transform transforming the plant model T from a first frequency domain s to a second frequency domain {tilde over (s)}.
 23. The program storage device of claim 22, wherein the bilinear transform comprises ${s = \frac{\overset{\sim}{s} + p_{1}}{1 + \frac{\overset{\sim}{s}}{p_{2}}}},$

and the inverse of the bilinear transform is ${\overset{\sim}{s} = \frac{{- s} + p_{1}}{\frac{s}{p_{2} - 1}}},$

wherein p₁ is a first pole at least partially characterizing a bandwidth of a closed loop system having the controller and the dynamic system, and p₂ is a second pole at least partially characterizing a damping of the closed loop system.
 24. The program storage device of claim 23, wherein the controller is determined by minimizing the measure of maximum singular value ({overscore (σ)}) of the augmented plant transfer function [W{tilde over (F)}(I+G{tilde over (F)})⁻¹] to be less than one.
 25. The program storage device of claim 23, wherein the controller is characterizable by $\overset{\sim}{F} = \begin{bmatrix} {A + {B_{1}B_{1}^{T}P} + {B_{2}R} + {Z\quad L\quad C_{2}}} & {{- Z}\quad L} \\ R & 0 \end{bmatrix}$

wherein R=−B₂ ^(T)P. L=−QC₂ ^(T), and Z=(I=PQ)⁻¹, and wherein A, B₁, B₂, C₁, C₂, D₁₁, D₁₂, D₂₁, and D₂₂ are parameters in a plant model ${T = \begin{bmatrix} A & B_{1} & B_{2} \\ C_{1} & D_{11} & D_{12} \\ C_{2} & D_{21} & D_{22} \end{bmatrix}},$

and wherein ${P = {{Ric}\quad\begin{bmatrix} A & {{B_{1}B_{1}^{T}} - {B_{2}B_{2}^{T}}} \\ {- C_{1}^{T}} & {- A^{T}} \end{bmatrix}}}\quad$

and ${Q = {R\quad i\quad {c\begin{bmatrix} A^{T} & {{C_{1}^{T}C_{1}} - {C_{2}^{T}C_{2}}} \\ {{- B_{1}}B_{1}^{T}} & {- A} \end{bmatrix}}}}\quad$

are solutions of a Game-Theretic Riccati equation.
 26. The program storage device of claim 19, wherein the plant model G is a linearized dynamic model.
 27. The program storage device of claim 19, wherein: the dynamic system is a spacecraft having a momentum wheel having a momentum h₀, and the dynamic model G is defined according to the relation ${\begin{bmatrix} {\Delta \quad \overset{.}{\omega}} \\ {\Delta \quad \overset{.}{h}} \end{bmatrix} = {{T\begin{bmatrix} {\Delta \quad \omega} \\ {\Delta \quad h} \end{bmatrix}} + {\begin{bmatrix} {{- I^{- 1}}e_{w}} \\ 1 \end{bmatrix}\quad \tau}}};$

wherein ${T = \begin{bmatrix} {- {I^{- 1}\left\lbrack {{\omega_{0}^{x}I} - \left( {{I\quad \omega_{0}} + h_{0}} \right)^{x}} \right\rbrack}} & {{- I^{- 1}}\omega_{0}^{x}e_{\omega}} \\ 0 & 0 \end{bmatrix}};$

wherein $\omega = \begin{bmatrix} \begin{matrix} \omega_{x} \\ \omega_{y} \end{matrix} \\ \omega_{z} \end{bmatrix}$

is a vector describing a rotational rate of the spacecraft about an x, y, and z axis, respectively and $h = \begin{bmatrix} \begin{matrix} h_{x} \\ h_{y} \end{matrix} \\ h_{z} \end{bmatrix}$

is a vector describing the rotational momentum of the spacecraft about the x, y, and z axis, respectively; $I = \begin{bmatrix} I_{11} & I_{12} & I_{13} \\ I_{21} & I_{22} & I_{23} \\ I_{31} & I_{32} & I_{33} \end{bmatrix}$

is a matrix describing the moment of inertia of the spacecraft, the matrix having diagonal components, I₁₁ I₂₂ I₃₃ which are principal inertia components, and off-diagonal components I₂₁ I₃₂ I₃₁ and I₁₂ I₂₃ I₁₃ are the cross product of inertia components; ${\omega_{0} = \begin{bmatrix} \begin{matrix} 0 \\ 0 \end{matrix} \\ \omega_{s} \end{bmatrix}},$

wherein ω_(s) is the spin rate of the spacecraft about the z axis, and ${h_{0} = \begin{bmatrix} {{- I_{13}}\omega_{s}} \\ {{- I_{23}}\omega_{s}} \\ 0 \end{bmatrix}};$

e_(w) is a unit vector axis of a momentum wheel, and τ is a torque applied to the spacecraft by the momentum wheel; and and wherein the operator x is defined such that {right arrow over (a)}×{right arrow over (b)}=a^(x)b. 